﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ARR.Entities;
using System.ServiceModel;
using ARR.DataModel.Repositories;

namespace ARR.Services.BizRules
{
    public static class UnitOfMeasureConvertionBizRules
    {
        public static void ValidateSave(UnitOfMeasureConvertion uom)
        {
            if (!uom.IsValid)
                throw new FaultException(uom.Error);


            var uomConvertions = UnitOfMeasureConvertionsRepository.Select(x => x.SourceUnit == uom.SourceUnit &&
                                                                                x.TargetUnit == uom.TargetUnit &&
                                                                                x.Value == uom.Value);

            if (uomConvertions.Any())
            {
                throw new FaultException<ARRExceptionDetail>(
                    new ARRExceptionDetail("No se pudó guardar la conversión de unidad, porque ya existe una conversión guardada con valores identicos. Por favor utilice esta última.",
                        ExceptionSeverity.Validation));
            }



        }
    }
}
